/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package applet1;

import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author Byron
 */
public class main extends java.applet.Applet {

    /**
     * Initializes the applet main
     */
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        jLabel3.setText(Integer.toString(this.comodines));
        jLabel5.setText(Integer.toString(this.errores));
        preguntas[0]="¿Cuál de los siguientes enunciados, no es un beneficio de la Virtualización?";
        preguntas[1]="Al Virtualizar se busca...";
        preguntas[2]="¿Qué es Cloud Computing?";
        preguntas[3]="Al tener como opción la Virtualización para mejorar el Ambiente...";
        preguntas[4]="Al hablar de Seguridad, ¿Qué concepto no es correcto?";
        preguntas[5]="Los tipos de virtualización que existen son:";
        preguntas[6]="¿Cuál de los siguientes Hypervisores, es licenciado por Microsoft?";
        preguntas[7]="Al utilizar Cloud Computing, se tienen beneficios como...";
        preguntas[8]="¿Qué empresa posee el liderato en cuanto a soluciones de virtualización?";
        preguntas[9]="Al crear las máquinas virtuales, éstas son administradas desde:";
        
        r1a[0]="Reducción de Costos";
        r1a[1]="no";
        r1b[0]="Mantenimiento Sencillo";
        r1b[1]="no";
        r1c[0]="Aumento de espacio Físico";
        r1c[1]="si";
        
        r2a[0]="Reducir el espacio físico y aprovechar al máximo los recursos de la máquina anfitriona";
        r2a[1]="si";
        r2b[0]="Competir con grandes empresas de desarrollo de aplicaciones";
        r2b[1]="no";
        r2c[0]="Evitar usar múltiples equipos de trabajo";
        r2c[1]="no";
        
        r3a[0]="Es una aplicación descargable para conocer el estado del clima";
        r3a[1]="no";
        r3b[0]="Tipo de tecnología moderna que permite utilizar una computadora estando mientras se viaja";
        r3b[1]="no";
        r3c[0]="Modelo que permite el acceso remoto a información y recursos por medio de una conexión a Internet";
        r3c[1]="si";
        
        r4a[0]="Se reduce la cantidad de personas que deben trabajar";
        r4a[1]="no";
        r4b[0]="Se reducen los costos y el consumo de energía hasta un 35%";
        r4b[1]="si";
        r4c[0]="Se evita la tala inmoderada de árboles";
        r4c[1]="no";
        
        r5a[0]="Obviar la documentación, es una pérdida de tiempo";
        r5a[1]="si";
        r5b[0]="Establecer controles de seguridad, como implementar un Firewall";
        r5b[1]="no";
        r5c[0]="Control y Autorización de Accesos";
        r5c[1]="no";
        
        r6a[0]="Completa, Paravirtualización, A nivel de SO, de Red";
        r6a[1]="si";
        r6b[0]="Completa, Virtualización Simple, A nivel de So, de Red";
        r6b[1]="no";
        r6c[0]="Paravirtualización, de Red, de Host, Completa";
        r6c[1]="no";
        
        r7a[0]="VMware ESXi";
        r7a[1]="no";
        r7b[0]="Hyper-V";
        r7b[1]="si";
        r7c[0]="XenServer";
        r7c[1]="no";
        
        r8a[0]="Aumento en la cantidad de ofertas de Empleto";
        r8a[1]="no";
        r8b[0]="Acceso fácil y rápido a contenidos en la Web";
        r8b[1]="no";
        r8c[0]="Todas las anteriores son correctas";
        r8c[1]="si";
        
        r9a[0]="Microsoft";
        r9a[1]="no";
        r9b[0]="VMWare";
        r9b[1]="si";
        r9c[0]="Citrix";
        r9c[1]="no";
        
        r10a[0]="La consola del Sistema Operativo anfitrión";
        r10a[1]="no";
        r10b[0]="Un control remoto";
        r10b[1]="no";
        r10c[0]="Por medio de un Monitor o VMM";
        r10c[1]="si";
        
        respuestas1.add(r1a);
        respuestas1.add(r1b);
        respuestas1.add(r1c);
        
        respuestas2.add(r2a);
        respuestas2.add(r2b);
        respuestas2.add(r2c);
        
        respuestas3.add(r3a);
        respuestas3.add(r3b);
        respuestas3.add(r3c);
        
        respuestas4.add(r4a);
        respuestas4.add(r4b);
        respuestas4.add(r4c);
        
        respuestas5.add(r5a);
        respuestas5.add(r5b);
        respuestas5.add(r5c);
        
        respuestas6.add(r6a);
        respuestas6.add(r6b);
        respuestas6.add(r6c);
        
        respuestas7.add(r7a);
        respuestas7.add(r7b);
        respuestas7.add(r7c);
        
        respuestas8.add(r8a);
        respuestas8.add(r8b);
        respuestas8.add(r8c);
        
        respuestas9.add(r9a);
        respuestas9.add(r9b);
        respuestas9.add(r9c);
        
        respuestas10.add(r10a);
        respuestas10.add(r10b);
        respuestas10.add(r10c);
        
        this.preguntar();
    }

    /**
     * This method is called from within the init() method to initialize the
     * form. WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        jRadioButton3 = new javax.swing.JRadioButton();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();

        jLabel1.setText("jLabel1");

        jButton1.setText("Confirmar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jRadioButton1.setText("jRadioButton1");
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1ActionPerformed(evt);
            }
        });

        jRadioButton2.setText("jRadioButton2");
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2ActionPerformed(evt);
            }
        });

        jRadioButton3.setText("jRadioButton3");
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton3ActionPerformed(evt);
            }
        });

        jLabel2.setText("Comodines:");

        jLabel3.setText("jLabel3");

        jButton2.setText("Usar Comodín");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel4.setText("Errores:");

        jLabel5.setText("jLabel5");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGap(77, 77, 77))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jRadioButton1)
                            .addComponent(jRadioButton2)
                            .addComponent(jRadioButton3))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel3))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel4)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel5)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 163, Short.MAX_VALUE)
                        .addComponent(jButton2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton1)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jRadioButton1)
                .addGap(18, 18, 18)
                .addComponent(jRadioButton2)
                .addGap(18, 18, 18)
                .addComponent(jRadioButton3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 83, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton1)
                            .addComponent(jButton2))
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel4)
                            .addComponent(jLabel5))
                        .addGap(9, 9, 9))))
        );
    }// </editor-fold>//GEN-END:initComponents
    int comodines=3,errores=0,contador=0;
    String [] preguntas=new String[10];
    String [] actual=new String[3];
    ArrayList<Integer>desc=new ArrayList();
    boolean usada=false;
    
    ArrayList<String[]>respuestas1=new ArrayList();
    ArrayList<String[]>respuestas2=new ArrayList();
    ArrayList<String[]>respuestas3=new ArrayList();
    ArrayList<String[]>respuestas4=new ArrayList();
    ArrayList<String[]>respuestas5=new ArrayList();
    ArrayList<String[]>respuestas6=new ArrayList();
    ArrayList<String[]>respuestas7=new ArrayList();
    ArrayList<String[]>respuestas8=new ArrayList();
    ArrayList<String[]>respuestas9=new ArrayList();
    ArrayList<String[]>respuestas10=new ArrayList();
    
    String [] r1a=new String[2];
    String [] r1b=new String[2];
    String [] r1c=new String[2];
    String [] r2a=new String[2];
    String [] r2b=new String[2];
    String [] r2c=new String[2];
    String [] r3a=new String[2];
    String [] r3b=new String[2];
    String [] r3c=new String[2];
    String [] r4a=new String[2];
    String [] r4b=new String[2];
    String [] r4c=new String[2];
    String [] r5a=new String[2];
    String [] r5b=new String[2];
    String [] r5c=new String[2];
    String [] r6a=new String[2];
    String [] r6b=new String[2];
    String [] r6c=new String[2];
    String [] r7a=new String[2];
    String [] r7b=new String[2];
    String [] r7c=new String[2];
    String [] r8a=new String[2];
    String [] r8b=new String[2];
    String [] r8c=new String[2];
    String [] r9a=new String[2];
    String [] r9b=new String[2];
    String [] r9c=new String[2];
    String [] r10a=new String[2];
    String [] r10b=new String[2];
    String [] r10c=new String[2];
    
    public int Random()
    {
        int random=1+((int)(Math.random()*10));
        if(this.desc.contains(random))
            this.Random();
        else
        {
            this.desc.add(random);
            System.out.println(random);
        }
        return random;
    }
    
    public void preguntar()
    {
        if(this.contador<9)
        {
            int pregunta=this.Random();
            
                switch (pregunta)
                {
                        case (1):
                        {
                            jLabel1.setText(preguntas[0]);
                            jRadioButton1.setText(r1a[0]);
                            jRadioButton2.setText(r1b[0]);
                            jRadioButton3.setText(r1c[0]);
                            actual[0]=r1a[1];
                            actual[1]=r1b[1];
                            actual[2]=r1c[1];
                            break;
                        }
                        case (2):
                        {
                            jLabel1.setText(preguntas[1]);
                            jRadioButton1.setText(r2a[0]);
                            jRadioButton2.setText(r2b[0]);
                            jRadioButton3.setText(r2c[0]);
                            actual[0]=r2a[1];
                            actual[1]=r2b[1];
                            actual[2]=r2c[1];
                            break;
                        }
                        case (3):
                        {
                            jLabel1.setText(preguntas[2]);
                            jRadioButton1.setText(r3a[0]);
                            jRadioButton2.setText(r3b[0]);
                            jRadioButton3.setText(r3c[0]);
                            actual[0]=r3a[1];
                            actual[1]=r3b[1];
                            actual[2]=r3c[1];
                            break;
                        }
                        case (4):
                        {
                            jLabel1.setText(preguntas[3]);
                            jRadioButton1.setText(r4a[0]);
                            jRadioButton2.setText(r4b[0]);
                            jRadioButton3.setText(r4c[0]);
                            actual[0]=r4a[1];
                            actual[1]=r4b[1];
                            actual[2]=r4c[1];
                            break;
                        }
                        case (5):
                        {
                            jLabel1.setText(preguntas[4]);
                            jRadioButton1.setText(r5a[0]);
                            jRadioButton2.setText(r5b[0]);
                            jRadioButton3.setText(r5c[0]);
                            actual[0]=r5a[1];
                            actual[1]=r5b[1];
                            actual[2]=r5c[1];
                            break;
                        }
                        case (6):
                        {
                            jLabel1.setText(preguntas[5]);
                            jRadioButton1.setText(r6a[0]);
                            jRadioButton2.setText(r6b[0]);
                            jRadioButton3.setText(r6c[0]);
                            actual[0]=r6a[1];
                            actual[1]=r6b[1];
                            actual[2]=r6c[1];
                            break;
                        }
                        case (7):
                        {
                            jLabel1.setText(preguntas[6]);
                            jRadioButton1.setText(r7a[0]);
                            jRadioButton2.setText(r7b[0]);
                            jRadioButton3.setText(r7c[0]);
                            actual[0]=r7a[1];
                            actual[1]=r7b[1];
                            actual[2]=r7c[1];
                            break;
                        }
                        case (8):
                        {
                            jLabel1.setText(preguntas[7]);
                            jRadioButton1.setText(r8a[0]);
                            jRadioButton2.setText(r8b[0]);
                            jRadioButton3.setText(r8c[0]);
                            actual[0]=r8a[1];
                            actual[1]=r8b[1];
                            actual[2]=r8c[1];
                            break;
                        }
                        case (9):
                        {
                            jLabel1.setText(preguntas[8]);
                            jRadioButton1.setText(r9a[0]);
                            jRadioButton2.setText(r9b[0]);
                            jRadioButton3.setText(r9c[0]);
                            actual[0]=r9a[1];
                            actual[1]=r9b[1];
                            actual[2]=r9c[1];
                            break;
                        }
                        case (10):
                        {
                            jLabel1.setText(preguntas[9]);
                            jRadioButton1.setText(r10a[0]);
                            jRadioButton2.setText(r10b[0]);
                            jRadioButton3.setText(r10c[0]);
                            actual[0]=r10a[1];
                            actual[1]=r10b[1];
                            actual[2]=r10c[1];
                            break;
                        }


            }
        }
        else
            JOptionPane.showMessageDialog(null, "GAME OVER, tuviste un total de errores de: " +this.errores +" de 10");

                    
    }
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
            this.usada=false;
            jRadioButton1.setEnabled(true);
            jRadioButton2.setEnabled(true);
            jRadioButton3.setEnabled(true);
            if((!jRadioButton1.isSelected())&&(!jRadioButton2.isSelected())&&(!jRadioButton3.isSelected()))
                JOptionPane.showMessageDialog(null, "Por favor seleccione una posible respuesta");
            if(jRadioButton1.isSelected())
            {
                if("si".equals(this.actual[0]))
                {
                    JOptionPane.showMessageDialog(null,"Respuesta Correcta");
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"Respuesta Incorrecta");   
                    this.errores++;
                }
                this.preguntar();
                this.contador++;
                jLabel5.setText(Integer.toString(this.errores));
            }
            if(jRadioButton2.isSelected())
            {
                if("si".equals(this.actual[1]))
                {
                    JOptionPane.showMessageDialog(null,"Respuesta Correcta");
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"Respuesta Incorrecta");   
                    this.errores++;
                }
                this.preguntar();
                this.contador++;
                jLabel5.setText(Integer.toString(this.errores));
            }
            if(jRadioButton3.isSelected())
            {
                if("si".equals(this.actual[2]))
                {
                    JOptionPane.showMessageDialog(null,"Respuesta Correcta");
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"Respuesta Incorrecta");   
                    this.errores++;
                }
                this.preguntar();
                this.contador++;
                jLabel5.setText(Integer.toString(this.errores));
            }
            jRadioButton1.setSelected(false);
            jRadioButton2.setSelected(false);
            jRadioButton3.setSelected(false);
        
        
        
        
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton1ActionPerformed
        // TODO add your handling code here:
        if(jRadioButton1.isSelected())
        {
            jRadioButton2.setSelected(false);
            jRadioButton3.setSelected(false);
        }
    }//GEN-LAST:event_jRadioButton1ActionPerformed

    private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton2ActionPerformed
        // TODO add your handling code here:
        if(jRadioButton2.isSelected())
        {
            jRadioButton1.setSelected(false);
            jRadioButton3.setSelected(false);
        }
    }//GEN-LAST:event_jRadioButton2ActionPerformed

    private void jRadioButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButton3ActionPerformed
        // TODO add your handling code here:
        if(jRadioButton3.isSelected())
        {
            jRadioButton2.setSelected(false);
            jRadioButton1.setSelected(false);
        }
    }//GEN-LAST:event_jRadioButton3ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        if(this.comodines>1)
        {
            if(!this.usada)
            {
                this.comodines=this.comodines-1;
                jLabel3.setText(Integer.toString(this.comodines));
                this.usada=true;
                for(int a=0;a<3;a++)
                {
                    if(this.actual[a]!="si")
                    {
                        if(a==0)
                        {
                            jRadioButton1.setSelected(false);
                            jRadioButton1.setEnabled(false);
                        }
                        if(a==1)
                        {
                            jRadioButton2.setSelected(false);
                            jRadioButton2.setEnabled(false);
                        }
                        if(a==2)
                        {
                            jRadioButton3.setSelected(false);
                            jRadioButton3.setEnabled(false);
                        }
                        break;
                    }
                }
            }
            else
                JOptionPane.showMessageDialog(null, "Ya se utilizó el comodín");
        }
        else 
        {
            jButton2.setEnabled(false);
            this.comodines=this.comodines-1;
            jLabel3.setText(Integer.toString(this.comodines));
        }
        // TODO add your handling code here:
    }//GEN-LAST:event_jButton2ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JRadioButton jRadioButton3;
    // End of variables declaration//GEN-END:variables
}
